Numerous electronic technologies such as digital computers, video equipment, and telephone systems have facilitated increased productivity and reduced costs in processing information in most areas of business, science, and entertainment. The electronic systems often utilize a number of methods to convey information including audio, video, graphics, and so on. Accurate and clear graphics images are typically important for proper conveyance of information and user experience. There are a number of factors that can impact accurate graphics images, including shadow presentation. However, traditional approaches to shadow rendering can be inadequate and difficult and complex to achieve adequate shadow effects.
Attempts at utilizing conventional shadow mapping techniques often encounter a number of issues in attempting to generate shadows that accurately simulate real world behavior. For example, in the real world, a shadow's penumbra is generally sharper/crisper at the point of contact with the object that casts it, but gradually becomes softer as the distance from the originating object increases. Unfortunately, efficiently reproducing this transition is difficult for conventional rendering techniques. Traditional shadow mapping is performed by blurring the entire penumbra of a shadow mapped to an object. While computationally efficient, and sufficient for creating soft shadows, traditional shadow mapping suffers from poor performance when creating the sharper shadows closer to the originating object (“blocker”). Shadow rendering using ray tracing is a newer approach that performs well for both soft and hard shadows, but currently implemented techniques are computationally complex and require significant hardware resources to perform, which often make them impractical for many applications. The issues can be particularly problematic in traditional variable penumbra techniques (e.g., such as PCSS, CHS, etc.). The traditional problems can include aliasing as the depth (distance) from the blocker object approaches zero, insufficient shadow map resolution for small or tiny geometry details, detachment of shadows from casting objects (e.g., caused by z biasing avoidance of shadow acne), penumbra estimation for overlapping blocker of large differences, and so on.